home *** CD-ROM | disk | FTP | other *** search
/ Beginning Mac Programming / Beginning Mac Programming.bin / Open Me for REALbasic 3 / REALbasic 3.2 / Read Me's / New! SpriteSurface < prev    next >
Text File  |  2001-01-22  |  4KB  |  18 lines

  1. Welcome to the new SpriteSurface control!
  2.  
  3. This release contains a number of substantial improvements to the SpriteSurface control in order to better support the production of commercial-quality games and in general make it more powerful and easier to use.
  4.  
  5. The biggest change you'll notice is that the SpriteSurface is no longer an invisible control. It is now a regular, visible control within a window. You can stretch it out to whatever size you like, or even change its size on the fly, using the standard left, top, width, and height properties. (The SurfaceWidth, etc. properties have gone away, but they may return in deprecated form for backwards compatibility.) We plan to add a method on the Window class which will allow any window to go into full-screen mode; this will allow you to replicate the current full-screen SpriteSurface experience when desired.
  6.  
  7. You may also notice the "Depth" property of the SpriteSurface control -- that's right, SpriteSurface now runs in 8, 16, or 32-bit color, rather than only 8 bits as was the case in 2.1. You may also specify a depth of 0, which causes the SpriteSurface to automatically match its graphics to the depth of the monitor (at the time the SpriteSurface is opened). Depth can also be changed on the fly if needed.
  8.  
  9. The old SpriteSurface had limited interactivity; you told it to Run, and it ran until it was closed, and then it disappeared. The now SpriteSurface can appear in a window, so it needs more. There's an Update method which is essentially "run one step" -- it redraws the sprites which have moved or changed, fires collision events, and calls the NextFrame event, just once. In some applications, you won't use Run at all; you can instead call Update repeatedly (perhaps from a Timer control). You'll also find that when a SpriteSurface is not running, it properly refreshes itself if it's covered by another window or some such.
  10.  
  11. Because of the change in running behavior, a few other things have also changed. "ClickToClose" has become "ClickToStop". And the KeyTest method now works even when the SpriteSurface is not running. As an unrelated improvement, the Backdrop image is now tiled infinitely, like the background picture in a web browser, making it considerably more useful in large scrolling worlds.
  12.  
  13. Sprites themselves work pretty much as they always have, with one important exception: they are now subclassable. You can create your own Sprite class, instantiate it with the standard New operator, and then attach your custom sprites to a SpriteSurface with "surface.Attach mySprite". This allows you to easily employ a proper object-oriented design in your sprite game. You don't have to use this feature; the SpriteSurface.NewSprite method is still there for creating plain-vanilla sprites.
  14.  
  15. To update your old SpriteSurface projects: the only tricky thing is that when you load an RB 2.1 project, any SpriteSurface control will have a height and width of 0. This makes it difficult to click on. You'll be able to see where it is by its icon, however; just drag around it with the mouse to select it, then give it a bigger height and width. Or you can click in the window and press the Tab key to select each control in the window in turn. All your old code and most of your old properties will remain intact. Your code will probably not need any modification, though if you used SpriteSurface.graphics before, you should now use the Window's graphics property instead. Note that using the new features will cause compiler errors if you attempt to compile your project in a previous version of REALbasic.
  16.  
  17. Get started now making those gorgeous 16- or 32-bit graphics, taking advantage of the sprites-in-a-window mode, adding sprites to your About box, and so on. Have fun!
  18.